R包lavaan的结构方程建模-路径分析
数据集
使用R自带的mtcars数据集作演示SEM的路径分析过程。
首先可以使用相关图探索数据中变量之间的关系。
#mtcars 中的变量间相关性library(GGally)
ggcorr(mtcars[-c(5,7,9)], nbreaks = NULL, label = TRUE, low = 'red3', high = 'green3',
label_round = 2, name = 'Correlation Scale', label_alpha = TRUE, hjust = 0.75) +
ggtitle(label = 'Correlation Plot') +
theme(plot.titl = element_text(hjust = 0.6))
由于SEM是模型验证的方法,因此需要考虑一个初始模型结构。
对于该示例数据集,根据变量间的相关性关系,假定了如下的变量间因果关系的模型(单向路径结构,前者决定后者,反方向作用无效)。
该假定的模型中,所涉及的变量均为已知的观测变量。如果使用SEM验证该模型,即可使用路径分析来实现。
注:实际情况中,SEM中变量间的因果关系,取决于研究设计,或者已知的自然或社会现象。本文作为示例演示,还请忽略本示例模型是否是有实际意义的;其次,忽略数据集是否满足多元正态性。
lavaan的路径分析
将上述假定的变量间因果关系结构输入,进行SEM建模,验证变量间的因果关系是否是有效的。
lavaan中,SEM通过sem()函数实现。
##结构方程模型(SEM)#假定变量结构
model <- '
# Blue Relationship
mpg ~ hp + cyl + disp + carb + am + wt
# Green Relationship
hp ~ cyl + disp + carb
'
#执行 SEM,详情 ?sem
#这里 model 中不存在潜在变量,仅为观测变量,则该模型即为一种常规的路径分析
library(lavaan)
path <- sem(model = model, data = mtcars, se = 'bootstrap', bootstrap = 100)
summary(path, standardized = TRUE, fit.measures = TRUE, rsquare = TRUE)
概要中主要包含了拟合度指标和统计检验结果,可据此对模型快速评估。
模型拟合检验统计量(即卡方统计量,Chi-square)的p值若显著,则表明模型有待提升。
CFI和TFI是拟合度的指标,大于0.9的值是“良好”模型拟合的标准,越接近1越好。
AIC和BIC是比较模型的标准,值越低表明模型拟合度越好。通常在存在多个备选模型的情况下使用,既要考虑较小的AIC或BIC值,又要尽可能选择简约模型。
RMSEA的p值若显著,则表明模型有待提升。
由于路径分析是回归模型的扩展,变量间关系通过回归确定,Regressions统计了模型中各变量的回归权值(参数估计值,绝对值越大表明变量间关系越大),p值反映了变量重要程度的显著性。
R平方是反映系数拟合度的描述性统计量。
因为本示例的模型并非一个真实的试验研究,变量间的因果关系也只是根据相关性随意地假定的,所以上述SEM显示模型“非常糟糕”:模型拟合优度比较差,且很多变量间的关系不显著,这在意料之中。
而且,这也从侧面反映了一个常见问题:相关性并不意味着因果关系。
真实试验研究数据的结构建模中,如果目的明确,变量间的归属也合理,原则上模型不会很差。
此外,模型的拟合度评估还可通过fitmeasures()函数给出。如以下通过卡方统计量、RMSEA、CFI、AIC值等指标对模型拟合度评估。
#模型拟合度,详情 ?fitmeasuresfitmeasures(path, c('chisq', 'rmsea', 'cfi', 'aic'))
尽管该模型不合适,但一些函数还得展示它们的使用,请允许我继续。
路径图展示图,我们可根据参数估计值的大小,并结合路径的显著性(查看summary(path)),评估关键的变量结构。
#例如,连线中的数值用于反映标准化的回归系数(标准化的参数估计值)
library(semPlot)
semPaths(path, what = 'std', layout = 'tree', residuals = FALSE, edge.label.cex = 1)
同lavaan的验证性因子分析中的方法,如果期望调整模型中的路径结构,也可使用MI值评估。
#通过 MI 值评估是否需要考虑一些遗漏的变量间关系mf <- modificationindices(path)
mf <- mf[order(mf$mi, decreasing = TRUE), ]
head(mf)
lhs、op、rhs指示了建议添加的变量路径。MI值越高,代表这种路径的添加更有利于改善现有模型。(添加时,将这种关系在SEM计算的第一步,加入至假定变量结构公式中)
不过这种“建议”只是基于某种数学上的统计指标给定,不可盲目接受,还需仔细考虑它们的存在意义是否是合适的,实际情况中一定要谨慎对待。就拿本文中的示例来说,很多变量间关系都是“强行定义”的,故结果中这些关系大都是直接拒绝的(p>0.05),即便模型侥幸通过了,它们的实际意义可能也很难解释。
参考资料
http://naes.unr.edu/shoemaker/teaching/NRES-746/SEM.html